iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
Software Development

QA工程師的美麗與哀愁系列 第 4

第三卷 - 在瀑布開發下修煉的敏捷測試,從冰淇淋測到金字塔。

  • 分享至 

  • xImage
  •  

關於敏捷開發(Agile Development)網路上的技術資源已經相當完整

本篇主要會專注在QA工程師怎麼在開發團隊中提供價值的心法。

隨便google一搜,能看到很多敏捷原則最佳實踐等等的文章

由於每個團隊產品都不盡相同,我相信敏捷絕對不是像WordPress網站套版

各種需求都要套進敏捷這個框架去跑各種開發流程與測試細節

有時候不是好不好,而是適不適合的問題。


我自己的經驗,團隊大多使用的是優化版的瀑布開發(Waterfall)

簡單說就是強調軟體開發過程會經過完整的規劃、分析、設計、測試各階段週期

來有效確保系統與產品的品質,期間可能會拉到數個月甚至是數年來完成開發。

而優化版的瀑布開發也被稱為迷你瀑布(mini-waterfall)

基本上就是把需求切小,開發時間能夠縮短到兩週到一兩個月。


而敏捷開發不是不注重產品的品質,而是只做最重要的事

用持續開發與向客戶蒐集反饋來不斷改進,對客戶提供有價值的產品

敏捷開發時間可以短至兩週至一個月就能完成一個開發週期

近年最流行的是Scrum這個敏捷流程架構


聰明的你看到這邊就會問

像敏捷或是迷你瀑布這麼短的開發時程,QA要怎麼去塞進必要的測試工作?

至此,自動化測試才應運而生。

測試金字塔

https://ithelp.ithome.com.tw/upload/images/20220904/20151799FI6gbE0GW1.png

從金字塔最下層的單元測試(Unit test)與組件測試(Component test)

通常可能是由RD寫code時排入開發時程一起完成的

而從API功能驗收測試(Acceptance test)到UI、手動測試一般都會是QA包辦

測試金字塔把不同種類的測試分層

越接近下層越接近程式邏輯,也越容易自動化,執行速度快又有效率。

越上層通常測試場景越複雜,所需測試人力成本大且執行測試也需要較長時間

金字塔也代表著下層的基礎測試覆蓋率要足夠多,讓上層複雜的使用者場景能順利測試

而以上都是理想的狀態。


測試冰淇淋

https://ithelp.ithome.com.tw/upload/images/20220904/20151799yjUMDbPyrr.png

實際上我們可以把自己想成一個產品的負責人

如果今天這個產品下個月要出,功能要到位,產品品質也要達到一定的程度

對測試團隊來說,就是要確保在達到品質目標的同時,在期限內完成測試。

在時間的壓力之下,開發團隊必須生出功能,而可以投資在單元測試的時間也會變少

在單元測試不完備的情況下,QA容易陷入全手動測試的誘惑之中

因為通常一個新功能的驗證,最快的方式一定是透過手動測試。

但軟體開發是一個持續且可以說是無止盡的進程(如果產品有活下來的話)

隨著功能越加越多,手動測試的時間會依靠測試人員的經驗甚至是數量來完成測試

所以長期來看才不能用短期思維去救火,這樣測試團隊會容易引火自焚。


從冰淇淋測到金字塔

https://ithelp.ithome.com.tw/upload/images/20220904/20151799jhaC9lmqql.png

綜上所說,我們有個現況(冰淇淋)跟理想狀態(金字塔)

那我們要怎麼改變現況,出發向理想前進?

除了幫團隊健檢目前產品測試環節各階層的測試比例之外,

QA也能提供實際的數字來證明,如果接下來做了某某自動化測試的投資

之後的測試就可以少一週手動測試的時間(PM喜歡這則留言)

或是去檢視目前產品的測試有哪些是真正對使用者是有價值的測試

不是為了測試覆蓋率而做的「假測試」,而是使用者會遇到的「有效測試」

除了評估短期可達成的成效之外,也要長期投資,慢慢建造可持續的測試金字塔。


那什麼才是「有效測試」呢?

下一篇來聊聊什麼是使用者場景測試(User Scenario Testing)


上一篇
第二卷 - 擁抱敏捷思維的探索性測試 vs 傳統腳本測試
下一篇
第四卷 - 什麼是使用者場景測試?集強迫症與責任感於一身的QA工程師
系列文
QA工程師的美麗與哀愁30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言